package com.siwei.mes.mapper.syncErp;

import com.siwei.mes.common.base.BaseMapper;
import com.siwei.mes.entity.sync.erp.ErpProject;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 工程信息(ErpProject)表数据库访问层
 *
 * @author linzi
 * @since 2024-07-25 16:52:16
 */
public interface ErpProjectMapper extends BaseMapper<ErpProject> {
    /**
     * 获取所有
     *
     * @param entity
     * @return
     */
    List<ErpProject> getList(ErpProject entity);

    /**
     * 根据id获取
     *
     * @param id
     * @return
     */
    ErpProject loadById(@Param("id") Long id);

    /**
     * 根据工程名称查询
     *
     * @param projectName
     * @return
     */
    ErpProject selectByName(@Param("projectName") String projectName);

    /**
     * 根据工程名称查询(绑定物料不为空)
     *
     * @param projectName
     * @return
     */
    ErpProject selectByNameNotMaterial(@Param("projectName") String projectName);

    /**
     * @param projectName
     * @param isQualified 是否合格 0-未检测  1-合格 2-不合格
     * @return
     */
    Integer experimentCount(@Param("projectName") String projectName, @Param("isQualified") Integer isQualified);

    /**
     * 修改上传信息
     *
     * @param id         主键id
     * @param contractId 协会合同id
     * @param isUpload   1-上传 0-未上传
     * @param errorMsg   上传错误信息
     */
    void updateIsUploadInfo(@Param("id") Long id, @Param("contractId") String contractId, @Param("isUpload") Integer isUpload, @Param("errorMsg") String errorMsg);

    /**
     * 根据客户id和合同编号和工程名称查询数据
     *
     * @param erpCustomerId
     * @param contractNo
     * @param projectName
     * @return
     */
    ErpProject selectIsExist(@Param("erpCustomerId") Long erpCustomerId, @Param("contractNo") String contractNo, @Param("projectName") String projectName);

    /**
     * 查询所有铁标工程名称
     *
     * @return
     */
    List<String> getIsIronMarkProjectName();
}
